home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / pc / 3DTOSHI2.ZIP / mpgui / include / guiwin.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-04-16  |  3.8 KB  |  125 lines

  1.  
  2. // guiwin.h
  3. //
  4. // Copyright (c) 1995 by Toshiaki Tsuji, all rights reserved.
  5.  
  6. #ifndef __GUIWIN_H__
  7. #define __GUIWIN_H__
  8.  
  9. #include "stdgfx.h"
  10. #include "guimenu.h"
  11.  
  12. struct WINPOSCHANGE
  13.   {
  14.     INT  xPos;
  15.     INT  yPos;
  16.     INT  Width;
  17.     INT  Height;
  18.     UINT Flags;
  19.   }; // End of WINPOSCHANGE
  20.  
  21. #define SKIPDEFPROC -1
  22.  
  23. class GUIWINDOW : public GUIOBJECT
  24.   {
  25.     protected :
  26.       HWINDOW hWindow;
  27.       HWINDOW hClient;
  28.       HWINDOW hToolBar;
  29.  
  30.       GUIWINDOW *ParentWindow;
  31.  
  32.       LONG ClassStyle;
  33.       LONG WinStyle;
  34.       LONG WinExStyle;
  35.       LONG ClientXPos;
  36.       LONG ClientYPos;
  37.       LONG ClientFlag;
  38.       LONG ClientClass;
  39.       
  40.       LONG WinBG;
  41.       CHAR ClassName[128];
  42.  
  43.       VOID PreRegister ();      
  44.       virtual VOID RegisterWindow ();
  45.       virtual VOID CreateClientWindow ();
  46.  
  47.       virtual LONG OnPaint ( HDISPLAY hDisplay );
  48.       virtual LONG OnCommand ( LONG Command );
  49.       virtual LONG OnCreate ()=0;
  50.       virtual LONG OnClose ()=0;
  51.       virtual LONG OnDestroy ();
  52.       virtual LONG OnSize ( LONG Wd, LONG Ht );
  53.       virtual LONG OnKeyDown ( LONG WhichKey );
  54.       virtual LONG OnKeyUp ( LONG WhichKey );
  55.       virtual LONG OnMouse ( LONG Event, LONG Flags, LONG Mx, LONG My );
  56.       virtual LONG OnTimer ();
  57.       virtual LONG OnScroll ( LONG SBarID, LONG Code, LONG Pos );
  58.       virtual LONG OnPosChanging ( WINPOSCHANGE *WinPosChange );
  59.             virtual LONG OnActivate ( LONG Flags, BOOLEAN IsMinimized ); 
  60.       virtual LONG UserProc ( MESSAGE iMessage, PARAM1 Param1, PARAM2 Param2 );
  61.  
  62.       VOID SetTimer ( LONG Timing );
  63.       VOID KillTimer ();
  64.  
  65.       VOID SetScrollRange ( LONG SBarID, LONG Min, LONG Max );
  66.       VOID GetScrollRange ( LONG SBarID, LONG *Min, LONG *Max );
  67.       VOID SetScrollPos ( LONG SBarID, LONG Pos );
  68.       VOID GetScrollPos ( LONG SBarID, LONG *Pos );
  69.  
  70.       VOID SetClassStyle ( LONG Style );
  71.       VOID AddClassStyle ( LONG Style );
  72.       VOID RemoveClassStyle ( LONG Style );
  73.       VOID SetWinStyle ( LONG Style );
  74.       VOID AddWinStyle ( LONG Style );
  75.       VOID RemoveWinStyle ( LONG Style );
  76.       VOID SetWinExStyle ( LONG Style );
  77.       VOID AddWinExStyle ( LONG Style );
  78.       VOID RemoveExWinStyle ( LONG Style );
  79.  
  80.       BOOLEAN AddChildWindow ( GUIWINDOW *ChildWindow, STRING Title, LONG x, LONG y,
  81.                                LONG Wd, LONG Ht );
  82.       
  83.       VOID InvalidateClient ();  
  84.       LONG ShowMessageBox ( STRING Title, STRING Message, LONG Flag );
  85.       VOID ExitApplication ( LONG ReturnValue );
  86.       VOID ResetClientArea ();
  87.  
  88.     public :
  89.       GUIWINDOW ();
  90.       virtual ~GUIWINDOW ();
  91.  
  92.       virtual BOOLEAN Create ( STRING Title, LONG x, LONG y, LONG Wd, LONG Ht,
  93.                                GUIWINDOW *Parent );
  94.       virtual LONG WndProc ( HWINDOW hWnd, MESSAGE iMessage, PARAM1 Param1, PARAM2 Param2,
  95.                              BOOLEAN FromClient );
  96.  
  97.       virtual VOID CloseWindow ();
  98.       
  99.       HDISPLAY GetDisplay ( HWINDOW hWnd );
  100.       VOID ReleaseDisplay ( HWINDOW hWnd, HDISPLAY hDisplay );
  101.       VOID ShowWindow ( LONG CmdShow );
  102.       VOID UpdateWindow ();
  103.  
  104.       HWINDOW GetHandle () { return hWindow; };
  105.       HWINDOW GetClient () { return hClient; };
  106.  
  107.       VOID SetBackGround ( LONG Background );
  108.       VOID SetMenu ( GUIMENU *Menu );
  109.       VOID SetToolBar ( HWINDOW ToolBar, LONG Ht );
  110.       VOID SetClientAreaPos ( LONG x, LONG y );
  111.  
  112.       #if defined (__FORUNIX__)
  113.         VOID MapXWinEvent ( MESSAGE *iMessage, XEvent *EventPtr );
  114.       #endif
  115.   }; // End of GUIWINDOW
  116.  
  117. VOID AddWindow ( GUIWINDOW *NewWin, HWINDOW Handle );
  118. VOID DiscardWindow ( HWINDOW hWindow );
  119. GUIWINDOW *FindWindow ( HWINDOW hWindow );
  120. VOID ClearRemovedList ();
  121. VOID InitWinHashTable ();
  122. VOID DeInitWinHashTable ();
  123.  
  124. #endif
  125.